package com.wish.algorithm.sort;

import com.wish.inter.algorithm.ISort;

import java.util.Arrays;

/**
 * Created by suliucheng on 2021/4/19 11:04
 * Directions:快速排序是对冒泡排序的一种改进。基本思想：通过一趟排序将要排序的数据分割成独立的两个部分，
 * 其中一部分的所有数据要比另外一部的所有数据要小，然后再按照此方法对这两个部分数据分别进行快速排序，整个
 * 排序过程可以递归进行，以此达到整个数据都变成有序序列。
 * <p>
 * 比如   5 4 3 2 1
 * 将3 作为一个基数，比3大的数全部移到右边，比3 小的数字全部移动到左边
 * 然后把3左右的两组数再次按照上述过程继续排序，直到最后两个数比较大小。
 */
public class Quick implements ISort {

    /**
     * 把第一个数，作为基数，比第一个数小的数，全部移动到左边
     *
     * @param arr 传入的无序数组
     * @return
     */
    @Override
    public int[] sort(int[] arr) {
        return arr;
    }

    public int[] sort() {
        int[] arr = new int[]{5, 3, 7, 6, 4, 1, 0, 2, 9, 10, 8};

        int key = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if(arr[i]<key){
                int temp = arr[i];
                arr[i] = key;
                key = temp;
            }
        }
        System.out.println(Arrays.toString(arr));
        return arr;
    }


    public static void main(String[] args) {
        new Quick().sort();
    }
}
